package fenetre;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class TabPartie extends JPanel implements ActionListener{
	private JLabel		_lblNomPartie,
						_lblNbJoueur,
						_lblNbLigne,
						_lblNbColonne,
						_lblNbEnergie,
						_lblEnregistrer;
	private JFormattedTextField	_txtNomPartie;
	private ButtonGroup	 _bgNbJoueur;
	private JRadioButton _rb2,
						 _rb3,
						 _rb4;
	private JComboBox	_cbNbLigne,
						_cbNbColonne,
						_cbNbEnergie;
	private JCheckBox	_chkEnregistrer;
	private JButton		_btnEffacer;
	

					
	private void init(){		
		_lblNomPartie = new JLabel("Nom partie");
		_lblNbJoueur = new JLabel("Nb joueurs");
		_lblNbLigne = new JLabel("Nb lignes");
		_lblNbColonne = new JLabel("Nb colonnes");
		_lblNbEnergie = new JLabel("Nb energies");
		_lblEnregistrer = new JLabel("Enregistrer la partie?");
		
		Vector valeurs = new Vector(2, 4);
		
		_txtNomPartie = new JFormattedTextField();
		_bgNbJoueur = new ButtonGroup();
		_rb2 = new JRadioButton("2");
		_rb2.addActionListener(this);
		_rb2.setActionCommand("2");
		_rb3 = new JRadioButton("3");
		_rb3.addActionListener(this);
		_rb3.setActionCommand("3");
		_rb4 = new JRadioButton("4");
		_rb4.addActionListener(this);
		_rb4.setActionCommand("4");
		_cbNbLigne = new JComboBox(initListe(new Vector(), 10, 50));
		_cbNbColonne = new JComboBox(initListe(new Vector(), 10, 50));
		_cbNbEnergie = new JComboBox(initListe(new Vector(), 5, 20));
		_chkEnregistrer = new JCheckBox();
		_chkEnregistrer.addActionListener(this);
		_chkEnregistrer.setActionCommand("Enregistrer");
		
		_btnEffacer = new JButton("Effacer");
		_btnEffacer.addActionListener(this);

		build();
	}
	
	private Vector initListe(Vector a, int min, int max){
		if(!a.isEmpty())
			a.clear();
		for(int i = min; i <= max; i++){
			a.add(i);
		}
		return a;
	}
	
	public TabPartie(){
		init();
	}
	
	private void build(){
		JPanel form = new JPanel(new GridLayout(7, 2));
		JPanel boutons = new JPanel(new FlowLayout());
		JPanel radio = new JPanel(new FlowLayout());
		
		setLayout(new BorderLayout());
		
		radio.add(_rb2);
		radio.add(_rb3);
		radio.add(_rb4);
		_bgNbJoueur.add(_rb2);
		_bgNbJoueur.add(_rb3);
		_bgNbJoueur.add(_rb4);
		_rb2.setSelected(true);
		
		
		Integer[] integer = new Integer[3];
		for(int i = 0; i < 3; i++)
			integer[i] = i + 1;
		
		JList<Integer> l = new JList<Integer>(integer);

		
		form.add(_lblNomPartie);
		form.add(_txtNomPartie);
		form.add(_lblNbJoueur);
		form.add(radio);
		form.add(_lblNbLigne);
		form.add(_cbNbLigne);
		form.add(_lblNbColonne);
		form.add(_cbNbColonne);
		form.add(_lblNbEnergie);
		form.add(_cbNbEnergie);
		form.add(_lblEnregistrer);
		form.add(_chkEnregistrer);
		form.add(new JLabel("Choisissez des chiffres inutiles"));
		form.add(l);
		boutons.add(_btnEffacer);
		
		add("North", form);
		add("South", boutons);
	}
	
	public int get_NbJoueur() {
		return Integer.parseInt(_bgNbJoueur.getSelection().getActionCommand());
	}

	public int get_NbLigne() {
		return (int) _cbNbLigne.getSelectedItem();
	}

	public int get_NbColonne() {
		return (int) _cbNbColonne.getSelectedItem();
	}

	public int get_NbEnergie() {
		return (int) _cbNbEnergie.getSelectedItem();
	}

	public String getNomPartie(){
		return _txtNomPartie.getText();
	}
	
	public boolean getEnregistrer(){
		return _chkEnregistrer.isSelected();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getActionCommand().equals("Effacer")){
			_txtNomPartie.setText("");
			
			_txtNomPartie.requestFocusInWindow();
		}
	}
}
